Microdevices, such as microcircuits formed on a substrate, continue to become more and more complex. A conventional integrated circuit may contain several million transistors, making these devices very difficult to design and fabricate. Moreover, the layout of elements in a microcircuit design typically is not a linear process. Instead, the complexity of laying out the elements of a microcircuit more closely correlates to the formula n log n, where n is the number of elements in the design.
In order to address this complexity, microcircuit designers often will combine several smaller designs in a hierarchical arrangement to form a larger microcircuit design. Typically, each smaller design, sometimes referred to as a “cell” or “block,” describes a group of circuit elements that have been configured to form one or more functional components. In some situations, this block may be new. Frequently, however, a block simply will be copied from a library of existing circuit designs. For example, rather than creating a new design for a memory device, a circuit designer may simply obtain a previously-created design of a memory device from a library of circuit components. By using a design for a group of circuit elements as a single block, a designer can more easily create a larger microcircuit design.
Even if a designer employs blocks of circuit elements to create a larger microcircuit design, however, the designer must still physically arrange those blocks relative to each other for placement on a substrate. More particularly, the designer must create a “floor plan” for the microcircuit design. The floor plan will include the perimeter for the microcircuit design. This perimeter defines the size and shape of the microcircuit that will be fabricated from the design. The floor plan also will include the position of the various contact pads required by the microcircuit. These pads, arranged along the periphery of the floor plan perimeter, specify the connection points for the power, ground, and input/output pins that will connect the microcircuit to a power supply, an electrical ground, and other devices. The blocks of circuit elements then are arranged in the “core” area inside of the contact pads. With some blocks, the size and shape of the block are predefined. For other blocks, the block design may simply require a minimum area for the block. The particular shape of the block then may be specified by the designer.
The floor plan also may include one or more of the conductive lines or “wires” that will be included in the microcircuit design. In particular, the floor plan usually will include those wire structures that will take up a large amount of space in the circuit design. As will be appreciated by those of ordinary skill in the art, the power supply and ground wires that handle large currents typically are wider than signal wires that carry lower current clock signals, data signals and control signals. These power and ground wires thus may be included in a floor plan design. In addition, the designer must be able to easily connect the power and ground inputs of every component to a power or ground wire such that each component receives the same amount of power in a consistent manner. Accordingly, primary power and ground lines (sometimes referred to as a power/ground “network” wires) typically must be routed throughout the entire area floor plan design. If the designer is uncertain as to the placement of the power and ground connections for a block, then the power/ground network wires may even need to be arranged to encircle the block. This power/ground network structure is sometimes referred to as a power/ground network “ring.”
In addition to the layout of the component blocks, the packaging for a microcircuit will also affect the routing of data signal, control signal, power and ground wires between the blocks. A microcircuit's package will have a fixed number of pins for external connections to the microcircuit, so the clock signal wires, data signal wires, control signal wires, power wires and ground wires for the blocks must be routed to the contact pads for these pins without congestion and without lengthening the wires beyond a maximum distance.
There are two types of routing for electrical connection wires: global routing and detailed (or “local”) routing. Global routing defines the overall directions in which the wires are laid out to avoid large structures. Detailed routing then specifies the local detours for the wires that are taken along those general directions to avoid other wires or smaller structures. Because of the complexity of the detailed routing process, this process is typically very time-consuming, so it usually is preferable to avoid congestion as much as possible during global routing, to simplify the detailed routing process.
Conventionally, the process of creating a floor plan design includes several steps. First, a designer will lay out a proposed floor plan for the component blocks. Next, the designer will assign pin placements for the microcircuit package by, for example, defining the locations of the contact pads for each pin. The designer will then globally route each group of large wiring structures among the blocks, such as power and ground (PG) wires, guard bands and signal wires grouped into a bus. Once the layout has been completed, the designer must analyze the layout to determine if it meets various constraints. For example, once the power and ground (PG) wiring has been routed, the layout design is analyzed to determine if the routing creates an unacceptable voltage drop (conventionally referred to an IR-drop). The layout also is analyzed to determine if the power and ground (PG) wiring creates an electromigration issue. This occurs, e.g., where a wire is too thin to allow the electrons to follow the direction of the wire. Instead, the electrons will tend to “break through” the wire.
If the PG wiring in the layout does not meet the required constraints, then the designer must delete the PG wire routing and repeat the PG wire routing portion of the placement and routing design process. To avoid having to repeat this process, many designers will “overdesign” the (PG) wire routing. For example, the designer may specify PG wires for the layout design that are much wider than necessary, to avoid any potential IR-drop or electromigration problems. The area that is unnecessarily used by overdesigning the PG wiring thus either increased the overall size of the circuit, or reduces the amount of area available to place or expand the blocks which in turn may lead to timing problems for the circuit. Some conventional placement and routing tools attempt to address this problem by providing automatic suggestions to a designer during the (PG) wire network routing design process. These abstract suggestions, however, do not take into account the specific floor plan and PG wire routing of a particular integrated circuit design.